package com.cx.config;

import com.cx.properties.AliOssProperties;
import com.cx.util.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration      //当使用@Configuration注解的类被加载到Spring容器中时，Spring会自动扫描并注册这些类及其中的Bean定义。因此，这些类可以直接使用IOC容器中的Bean，而不需要显式注入。
@Slf4j
public class OssConfiguration {

    @Bean
    @ConditionalOnMissingBean // 当IOC容器中没有该类对象时就创建
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){
        log.info("开始创建阿里云文件上传工具类对象：{}",aliOssProperties);
        return new AliOssUtil(
                aliOssProperties.getEndpoint(),
                aliOssProperties.getAccessKeyId(),
                aliOssProperties.getAccessKeySecret(),
                aliOssProperties.getBucketName()
        );
    }
}
